package cn.kimming.wms.dao;

import java.util.List;

import cn.kimming.wms.domain.Role;
import cn.kimming.wms.domain.SystemMenu;

public interface ISystemMenuDAO extends IGenericDAO<SystemMenu>{
	
	/**
	 * 列出子菜单(编码为NULL)
	 */
	List<SystemMenu> listChildren();
	
	/**
	 * 查询指定菜单下的所有子菜单
	 * @param parentId	父菜单ID
	 * @return	返回子菜单对象集合
	 */
	List<SystemMenu> listByParentId(Long parentId);
	
	/**
	 * 根据编码查询菜单
	 * @param parentSn 菜单编码
	 * @return 菜单对象
	 */
	SystemMenu getBySn(String sn);
	
	/**
	 * 根据父菜单的编码查询子菜单
	 * @param parentSn	父菜单的编码
	 * @return	返回子菜单对象集合
	 */
	List<SystemMenu> listByParentSn(String parentSn);
	
	/**
	 * 根据父菜单的编码和当前角色拥有菜单列表查询子菜单
	 * @param parentSn	父菜单的编码
	 * @param roles	用户拥有的角色
	 * @return	返回子菜单对象集合
	 */
	List<SystemMenu> listByParentSnAndRole(String parentSn, List<Role> roles);
}
